home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / quodlibet / ext / events / screensaver.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2014-12-31  |  3KB  |  80 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. import os
  5. import sys
  6. if os.name == 'nt' or sys.platform == 'darwin':
  7.     from quodlibet.plugins import PluginNotSupportedError
  8.     raise PluginNotSupportedError
  9. from gi.repository import Gtk
  10. import dbus
  11. from quodlibet import app
  12. from quodlibet.plugins.events import EventPlugin
  13.  
  14. class ScreensaverPause(EventPlugin):
  15.     PLUGIN_ID = 'screensaver_pause'
  16.     PLUGIN_NAME = _('Screensaver Pause')
  17.     PLUGIN_DESC = _('Pause while the GNOME screensaver is active.')
  18.     PLUGIN_ICON = Gtk.STOCK_MEDIA_PAUSE
  19.     PLUGIN_VERSION = '0.2'
  20.     DBUS_NAME = 'org.gnome.ScreenSaver'
  21.     DBUS_INTERFACE = 'org.gnome.ScreenSaver'
  22.     DBUS_PATH = '/org/gnome/ScreenSaver'
  23.     __was_paused = False
  24.     __ignore_next = False
  25.     __interface = None
  26.     __active = False
  27.     __watch = None
  28.     
  29.     def __screensaver_changed(self, active):
  30.         if active == self._ScreensaverPause__active:
  31.             return None
  32.         self._ScreensaverPause__active = None
  33.         if active:
  34.             self._ScreensaverPause__was_paused = app.player.paused
  35.             app.player.paused = True
  36.         elif not (self._ScreensaverPause__was_paused) and not (self._ScreensaverPause__ignore_next):
  37.             app.player.paused = False
  38.         self._ScreensaverPause__ignore_next = False
  39.  
  40.     
  41.     def plugin_on_unpaused(self):
  42.         self._ScreensaverPause__ignore_next = True
  43.  
  44.     plugin_on_paused = plugin_on_unpaused
  45.     
  46.     def __remove_interface(self):
  47.         if self._ScreensaverPause__interface:
  48.             self._ScreensaverPause__sig.remove()
  49.             self._ScreensaverPause__interface = None
  50.  
  51.     
  52.     def __owner_changed(self, owner):
  53.         if not owner:
  54.             self._ScreensaverPause__remove_interface()
  55.         elif not self._ScreensaverPause__interface:
  56.             bus = dbus.SessionBus()
  57.             obj = bus.get_object(self.DBUS_NAME, self.DBUS_PATH)
  58.             iface = dbus.Interface(obj, self.DBUS_INTERFACE)
  59.             self._ScreensaverPause__sig = iface.connect_to_signal('ActiveChanged', self._ScreensaverPause__screensaver_changed)
  60.             self._ScreensaverPause__active = iface.GetActive()
  61.             self._ScreensaverPause__interface = iface
  62.  
  63.     
  64.     def enabled(self):
  65.         
  66.         try:
  67.             bus = dbus.SessionBus()
  68.             self._ScreensaverPause__watch = bus.watch_name_owner(self.DBUS_NAME, self._ScreensaverPause__owner_changed)
  69.         except dbus.DBusException:
  70.             pass
  71.  
  72.  
  73.     
  74.     def disabled(self):
  75.         if self._ScreensaverPause__watch:
  76.             self._ScreensaverPause__watch.cancel()
  77.         self._ScreensaverPause__remove_interface()
  78.  
  79.  
  80.